PARAMETERS = -g -Wall -pedantic -std=c99
EXEC_PARSER = parser
EXEC_QUERY = query
WIKI_PARSER = wikiParser
CONTEXTO = contexto
CC = gcc
REPOSITORIO = repos
RANK = 44
CARPETAPARSEAR = ./books/
QUERY = said
all: $(EXEC_QUERY) $(EXEC_PARSER)

hash.o:	./TADs/hash.c
	$(CC) $(PARAMETERS) -c ./TADs/hash.c

pila.o: ./TADs/pila.c
	$(CC) $(PARAMETERS) -c ./TADs/pila.c

lista.o: ./TADs/lista.c
	$(CC) $(PARAMETERS) -c ./TADs/lista.c

cola.o: ./TADs/cola.c
	$(CC) $(PARAMETERS) -c ./TADs/cola.c

abb.o: ./TADs/abb.c
	$(CC) $(PARAMETERS) -c ./TADs/abb.c

heap.o: ./TADs/heap.c
	$(CC) $(PARAMETERS) -c ./TADs/heap.c

contexto.o: ./Contextos/contexto.h
	$(CC) $(PARAMETERS) -c ./Contextos/contexto.c
	
terms.o: ./termSelection/termSelection.c
	$(CC) $(PARAMETERS) -c ./termSelection/termSelection.c -o terms.o

$(EXEC_PARSER): cola.o pila.o lista.o hash.o abb.o heap.o terms.o ./documentsParser.c  
	$(CC) $(PARAMETERS) cola.o pila.o lista.o hash.o abb.o heap.o terms.o documentsParser.c -o $(EXEC_PARSER) -lm

$(EXEC_QUERY): heap.o lista.o ./hacerConsulta.c
	$(CC) $(PARAMETERS) heap.o lista.o hacerConsulta.c -o $(EXEC_QUERY)

$(WIKI_PARSER): lista.o ./parseadorTextoswiki.c
	$(CC) $(PARAMETERS) lista.o parseadorTextoswiki.c -o $(WIKI_PARSER)
	
$(CONTEXTO): lista.o contexto.o abb.o cola.o pila.o 
	$(CC) $(PARAMETERS) abb.o lista.o contexto.o cola.o pila.o parserContexto.c -o $(CONTEXTO)
	
run_parser: $(EXEC_PARSER)
	./$(EXEC_PARSER) $(REPOSITORIO) -$(RANK) $(CARPETAPARSEAR)

run_query: $(EXEC_QUERY)
	./$(EXEC_QUERY) -r $(REPOSITORIO) -q $(QUERY)

run_wiki: $(WIKI_PARSER)
	./$(WIKI_PARSER)
	
run_contexto: $(CONTEXTO)
	./$(CONTEXTO)
	
test_parser: $(EXEC_PARSER)
	valgrind --leak-check=full --show-reachable=yes ./$(EXEC_PARSER)

test_query: $(EXEC_QUERY)
	valgrind --leak-check=full --show-reachable=yes ./$(EXEC_QUERY) -r $(REPOSITORIO) -q $(QUERY)

test_wiki: $(WIKI_PARSER)
	valgrind --leak-check=full --show-reachable=yes ./$(WIKI_PARSER)

clean:
	rm *.o -f
	rm $(EXEC_PARSER) -f
	rm $(EXEC_QUERY) -f
	rm ./Temp/*.* -f
	rm ./$(REPOSITORIO)/*.* -f
	rm octave-core -f
	rmdir $(REPOSITORIO)

clean_all: clean
	rm *.dat -f
	
